/*
 * MonsterStats.h
 *
 *  Created on: Oct 10, 2011
 *  Created by: Nick James
 *  Updated by: Nick James, Devin Manno
 *	Last Update: Oct 14, 2011
 */

/*
 * This class contains stats specific to monster objects
 */

#ifndef MONSTERSTATS_H_
#define MONSTERSTATS_H_
#include "CharacterStats.h"

class MonsterStats: public CharacterStats {
    friend ostream& operator<<(ostream& out, MonsterStats& m)
    {
        m.saveCharacterStats(out);
        out << endl << m.aggression << endl;
        return out;
    }
    friend istream& operator>>(istream& in, MonsterStats& m)
    {
        m.loadCharacterStats(in);
        char data[MAX] = ""; //to hold line
        in.getline(data,MAX - 1, '\n');
        m.aggression = atoi(data);
        return in;
    }
private:
	int aggression;	// determines how aggressive a monster is. higher values mean more aggressive

public:
	MonsterStats();
	MonsterStats(int agil, int str, int intel,
			int conc, int maxAP, int maxHP, int lvl, int AP, int HP, int aggro) :
				CharacterStats(agil, str, intel, conc, maxAP, maxHP, lvl, AP, HP){
		aggression = aggro;
	}
	virtual ~MonsterStats();

	// getters
	int getAgression() const;

	// setters
	void setMonsterStats(int agil, int str, int intel,
			int conc, int maxAP, int maxHP, int lvl, int AP, int HP, int aggro);
	void setAgression();
};

#endif /* MONSTERSTATS_H_ */
